﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using StairsModuleAndEdit.StairsModel.CommonUnit;
using StairsModuleAndEdit.StairsModel.Manage;

namespace StairsModuleAndEdit.StairsModel.DataInfos
{
	public class LinearSingleRunStairs : BaseCommonStairs
	{
		public LinearSingleRunStairs()
		{
			base.m_sName = "直段单跑楼梯";
		}

		public LinearSingleRunStairs(StairsCreator Creator)
		{
			base.m_sName = "直段单跑楼梯";
			this.m_StairsCreator = Creator;
		}

		public override void DrawStairs()
		{
			LinearSingleRunStairsCreator linearSingleRunStairsCreator = this.m_StairsCreator as LinearSingleRunStairsCreator;
			if (linearSingleRunStairsCreator != null)
			{
				linearSingleRunStairsCreator.CreateLinearSingleRunStairs(this);
			}
		}

		public void TransFormRailPoints()
		{
			foreach (BaseRaillingData baseRaillingData in this.m_listRail)
			{
				baseRaillingData.m_ptStart = Geometry.TransformPoint(baseRaillingData.m_ptStart, base.m_Transform);
			}
		}

		public void TransFormOutSupportPoints()
		{
			List<XYZ> list = new List<XYZ>();
			foreach (XYZ point in this.m_listPointsSupport)
			{
				XYZ item = Geometry.TransformPoint(point, base.m_Transform);
				list.Add(item);
			}
			if (list.Count > 0)
			{
				this.m_listPointsSupport.Clear();
				this.m_listPointsSupport.AddRange(list);
			}
		}

		public double m_dStairsWidth { get; set; }

		public double m_dStairsLength { get; set; }

		public XYZ m_TransVector { get; set; }

		public double m_dBottomElevation { get; set; }

		public double m_dTopElevation { get; set; }

		public double m_dStairsHigh { get; set; }

		public double m_dLevelValue { get; set; }

		public double m_dBottomOffset { get; set; }

		public double m_dTopOffset { get; set; }

		public FloorType m_FloorType { get; set; }

		public List<string> m_arLandWidth { get; set; }

		private StairsCreator m_StairsCreator;

		public BaseBeamData m_BeamData = new BaseBeamData();

		public LineRunData m_RunData = new LineRunData();

		public List<XYZ> m_listPointsSupport = new List<XYZ>();
	}
}
